home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Prog / T / Think-Pascal-7.0.cpt / THINK Pascal Interfaces / Terminals.p < prev    next >
Encoding:
Text File  |  1991-04-05  |  6.9 KB  |  256 lines  |  [TEXT/PJMM]

  1. {    This file has been processed by The THINK Pascal Source Converter, v1.1.    }
  2.  
  3. {}
  4. {    Terminals.p}
  5. {    Pascal Interface to the Terminal Manager}
  6. {    }
  7. {    Copyright © Apple Computer, Inc. 1988-90}
  8. {    All rights reserved}
  9. {}
  10. {$IFC UNDEFINED UsingIncludes}
  11. {$SETC UsingIncludes := 0}
  12. {$ENDC}
  13.  
  14.  
  15. unit Terminals;
  16. interface
  17.     uses
  18.         Types, OSUtils, AppleTalk, Dialogs, Memory, Script, Packages, CTBUtilities, Connections;
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.     const
  42. { current Terminal Manager version }
  43.         curTMVersion = 2;
  44.  
  45. { current Terminal Manager Environment Record version }
  46.         curTermEnvRecVers = 0;
  47.  
  48. { TMErr }
  49.         tmGenericError = -1;
  50.         tmNoErr = 0;
  51.         tmNotSent = 1;
  52.         tmEnvironsChanged = 2;
  53.         tmNotSupported = 7;
  54.         tmNoTools = 8;
  55.  
  56. { TMFlags }
  57.         tmInvisible = $00000001;
  58.         tmSaveBeforeClear = $00000002;
  59.         tmNoMenus = $00000004;
  60.         tmAutoScroll = $00000008;
  61.  
  62. { TMSelTypes & TMSearchTypes }
  63.         selTextNormal = $0001;
  64.         selTextBoxed = $0002;
  65.         selGraphicsMarquee = $0004;
  66.         selGraphicsLasso = $0008;
  67.  
  68.         tmSearchNoDiacrit = $0100;    {These are only for TMSearchTypes}
  69.         tmSearchNoCase = $0200;
  70.  
  71. { TMCursorTypes }
  72.         cursorText = 1;
  73.         cursorGraphics = 2;
  74.  
  75. { TMTermTypes }
  76.         tmTextTerminal = $0001;
  77.         tmGraphicsTerminal = $0002;
  78.  
  79. { TMChooseRec messages    }
  80.         tmChooseNochange = 1;
  81.         tmChooseBackdoor = 2;
  82.  
  83.     type
  84.         TMErr = OSErr;
  85.         TMFlags = LONGINT;
  86.         TMSelTypes = INTEGER;
  87.         TMSearchTypes = INTEGER;
  88.         TMCursorTypes = INTEGER;
  89.         TMTermTypes = INTEGER;
  90.  
  91.     { TMChoose data structures }
  92.         TMChooseRecPtr = ^TMChooseRec;
  93.         TMChooseRec = record
  94.                 reserved: LONGINT;
  95.                 msg: LONGINT;
  96.                 idleProc: ProcPtr;
  97.                 filterProc: ProcPtr;
  98.                 newTool: Str63;
  99.                 newConfig: Ptr;
  100.                 eventProc: ProcPtr;
  101.             end;
  102.  
  103.         TermDataBlockH = ^TermDataBlockPtr;
  104.         TermDataBlockPtr = ^TermDataBlock;
  105.         TermDataBlock = record
  106.                 flags: TMTermTypes;
  107.                 theData: Handle;
  108.                 auxData: Handle;
  109.                 reserved: LONGINT;
  110.             end;
  111.  
  112.         TermEnvironPtr = ^TermEnvironRec;
  113.         TermEnvironRec = record
  114.                 version: INTEGER;
  115.                 termType: TMTermTypes;
  116.                 textRows: INTEGER;
  117.                 textCols: INTEGER;
  118.                 cellSize: Point;
  119.                 graphicSize: Rect;
  120.                 slop: Point;
  121.                 auxSpace: Rect;
  122.             end;
  123.  
  124.  
  125.         TMSelection = record
  126.                 case INTEGER of
  127.                     1: (
  128.                             selRect: Rect;
  129.                     );
  130.                     2: (
  131.                             selRgnHandle: RgnHandle;
  132.                             filler: LONGINT;
  133.                     );
  134.             end;
  135.  
  136.         TermHandle = ^TermPtr;
  137.         TermPtr = ^TermRecord;
  138.         TermRecord = record
  139.                 procID: INTEGER;
  140.  
  141.                 flags: TMFlags;
  142.                 errCode: TMErr;
  143.  
  144.                 refCon: LONGINT;
  145.                 userData: LONGINT;
  146.  
  147.                 defProc: ProcPtr;
  148.  
  149.                 config: Ptr;
  150.                 oldConfig: Ptr;
  151.  
  152.                 environsProc: ProcPtr;
  153.                 reserved1: LONGINT;
  154.                 reserved2: LONGINT;
  155.  
  156.                 tmPrivate: Ptr;
  157.  
  158.                 sendProc: ProcPtr;
  159.                 breakProc: ProcPtr;
  160.                 cacheProc: ProcPtr;
  161.                 clikLoop: ProcPtr;
  162.  
  163.                 owner: WindowPtr;
  164.                 termRect: Rect;
  165.                 viewRect: Rect;
  166.                 visRect: Rect;
  167.  
  168.                 lastIdle: LONGINT;
  169.  
  170.                 selection: TMSelection;
  171.                 selType: TMSelTypes;
  172.  
  173.                 mluField: LONGINT;
  174.             end;
  175.  
  176.     function InitTM: TMErr;
  177.     function TMGetVersion (hTerm: TermHandle): Handle;
  178.     function TMGetTMVersion: INTEGER;
  179.  
  180.     function TMNew (termRect: Rect; viewRect: Rect; flags: TMFlags; procID: INTEGER; owner: WindowPtr; sendProc: ProcPtr; cacheProc: ProcPtr; breakProc: ProcPtr; clikLoop: ProcPtr; environsProc: ProcPtr; refCon: LONGINT; userData: LONGINT): TermHandle;
  181.  
  182.     procedure TMDispose (hTerm: TermHandle);
  183.  
  184.     procedure TMKey (hTerm: TermHandle; theEvent: EventRecord);
  185.     procedure TMUpdate (hTerm: TermHandle; visRgn: RgnHandle);
  186.     procedure TMPaint (hTerm: TermHandle; theTermData: TermDataBlock; theRect: Rect);
  187.     procedure TMActivate (hTerm: TermHandle; activate: BOOLEAN);
  188.     procedure TMResume (hTerm: TermHandle; resume: BOOLEAN);
  189.     procedure TMClick (hTerm: TermHandle; theEvent: EventRecord);
  190.     procedure TMIdle (hTerm: TermHandle);
  191.  
  192.     function TMStream (hTerm: TermHandle; theBuffer: Ptr; theLength: LONGINT; flags: CMFlags): LONGINT;
  193.     function TMMenu (hTerm: TermHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  194.  
  195.     procedure TMReset (hTerm: TermHandle);
  196.     procedure TMClear (hTerm: TermHandle);
  197.  
  198.     procedure TMResize (hTerm: TermHandle; newViewRect: Rect);
  199.  
  200.     function TMGetSelect (hTerm: TermHandle; theData: Handle; var theType: ResType): LONGINT;
  201.     procedure TMGetLine (hTerm: TermHandle; lineNo: INTEGER; var theTermData: TermDataBlock);
  202.     procedure TMSetSelection (hTerm: TermHandle; theSelection: TMSelection; selType: TMSelTypes);
  203.  
  204.     procedure TMScroll (hTerm: TermHandle; dH, dV: INTEGER);
  205.  
  206.     function TMValidate (hTerm: TermHandle): BOOLEAN;
  207.     procedure TMDefault (var theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  208.  
  209.     function TMSetupPreflight (procID: INTEGER; var magicCookie: LONGINT): Handle;
  210.     procedure TMSetupSetup (procID: INTEGER; theConfig: Ptr; count: INTEGER; theDialog: DialogPtr; var magicCookie: LONGINT);
  211.     function TMSetupFilter (procID: INTEGER; theConfig: Ptr; count: INTEGER; theDialog: DialogPtr; var theEvent: EventRecord; var theItem: INTEGER; var magicCookie: LONGINT): BOOLEAN;
  212.     procedure TMSetupItem (procID: INTEGER; theConfig: Ptr; count: INTEGER; theDialog: DialogPtr; var theItem: INTEGER; var magicCookie: LONGINT);
  213.     procedure TMSetupCleanup (procID: INTEGER; theConfig: Ptr; count: INTEGER; theDialog: DialogPtr; var magicCookie: LONGINT);
  214.     procedure TMSetupXCleanup (procID: INTEGER; theConfig: Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; var magicCookie: LONGINT);
  215.     procedure TMSetupPostflight (procID: INTEGER);
  216.  
  217.     function TMGetConfig (hTerm: TermHandle): Ptr;
  218.     function TMSetConfig (hTerm: TermHandle; thePtr: Ptr): INTEGER;
  219.  
  220.     function TMIntlToEnglish (hTerm: TermHandle; inputPtr: Ptr; var outputPtr: Ptr; language: INTEGER): OSErr;
  221.     function TMEnglishToIntl (hTerm: TermHandle; inputPtr: Ptr; var outputPtr: Ptr; language: INTEGER): OSErr;
  222.  
  223.     procedure TMGetToolName (id: INTEGER; var name: Str255);
  224.     function TMGetProcID (name: Str255): INTEGER;
  225.  
  226.     procedure TMSetRefCon (hTerm: TermHandle; refCon: LONGINT);
  227.     function TMGetRefCon (hTerm: TermHandle): LONGINT;
  228.  
  229.     procedure TMSetUserData (hTerm: TermHandle; userData: LONGINT);
  230.     function TMGetUserData (hTerm: TermHandle): LONGINT;
  231.  
  232.     function TMAddSearch (hTerm: TermHandle; theString: Str255; where: Rect; searchType: TMSearchTypes; callBack: ProcPtr): INTEGER;
  233.     procedure TMRemoveSearch (hTerm: TermHandle; refnum: INTEGER);
  234.     procedure TMClearSearch (hTerm: TermHandle);
  235.  
  236.     function TMGetCursor (hTerm: TermHandle; cursType: TMCursorTypes): Point;
  237.  
  238.     function TMGetTermEnvirons (hTerm: TermHandle; var theEnvirons: TermEnvironRec): TMErr;
  239.  
  240.     function TMChoose (var hTerm: TermHandle; where: Point; idleProc: ProcPtr): INTEGER;
  241.     function TMPChoose (var hTerm: TermHandle; where: Point; var cRec: TMChooseRec): INTEGER;
  242.  
  243.     procedure TMEvent (hTerm: TermHandle; theEvent: EventRecord);
  244.  
  245.     function TMDoTermKey (hTerm: TermHandle; theKey: Str255): BOOLEAN;
  246.     function TMCountTermKeys (hTerm: TermHandle): INTEGER;
  247.     procedure TMGetIndTermKey (hTerm: TermHandle; id: INTEGER; var theKey: Str255);
  248.  
  249.     procedure TMGetErrorString (hTerm: TermHandle; id: INTEGER; var errMsg: Str255);
  250.  {UsingTerminals}
  251.  
  252.  
  253. implementation
  254. end.
  255.  
  256.